ツリー
概要
エクスプローラのフォルダ一覧のような木構造の一覧表を作るための部品です。木構造(ツリー)では、枝葉(ノード)をツリー項目で表現します。
作成する方法
【名前】というツリーを作る
手順
部品から継承される手順のほか、次の手順が使用できます。
【自分】をクリアする
このツリーから項目をすべて削除します
【自分】をすべて消す
このツリーから項目をすべて削除します
【自分】へ〈【名前】という【内容】を【アイコン/画像】で〉加える:ツリー項目
このツリー直下の最後へツリー項目を追加します。
【自分】:【対象】へ〈【名前】という【内容】を【アイコン/画像】で〉加える:ツリー項目
指定した名前のツリー項目の最後へツリー項目を追加します。
【自分】へ【ツリー項目】を加える:ツリー項目
このツリー直下の最後へツリー項目を追加します。
【自分】:【対象項目:ツリー項目】へ〈【名前】という【内容】を【アイコン/画像】で〉挟む:ツリー項目
指定したツリーの任意のツリー項目に、別のツリー項目を挿入します(廃止予定。「ツリー項目」の「挟む」手順を利用して下さい)
【自分】から【名前:文字列】を消す
ツリーから指定した名前を持つ項目を削除します
【自分】から【番号】番目を消す
ツリーから指定した番号の項目を削除します
【自分】から【項目:ツリー項目】を消す
ツリーから項目を削除します
【自分】から探す
指定したツリー項目が何番目であるかを表します
【自分】を編集する
指定した項目の見出しを編集します
〈項目〉を省略すると選択している項目を編集します
【自分】を更新開始する
項目を操作するために一時的に描画を抑制します
【自分】を更新終了する
「変更開始」手順で一時的に停止した描画の抑制を解除します
設定項目
部品から継承される設定項目のほか、次の設定項目が使用できます。
設定項目 | 型 | 説明 | |
---|---|---|---|
スクロールバー | 真偽 | ◎ | 必要に応じてスクロールバーを表示するかどうか |
チェックボックス | 真偽 | ◎ | ツリーの項目にチェックボックスを表示するかどうか |
一覧 | ◎ | ツリーの状態を配列で表します | |
階層罫線 | 真偽 | ◎ | 階層を罫線で結ぶかどうか |
強調表示 | 真偽 | ◎ | 項目にマウスカーソルが置かれたときに強調するかどうか |
区切り文字 | 文字列 | ◎ | ツリーの階層を表す際に階層の区切りとして使う記号 |
個数 | 整数 | □ | 根の直下にある項目数 |
項目高さ | 整数 | ◎ | 項目の高さ |
根元罫線 | 真偽 | ◎ | ツリーの根元となる項目に罫線を引くかどうか |
先頭項目 | ツリー項目 | □ | ツリーの一番先頭の項目を取得します |
選択内容 | 文字列 | ◎ | 選択している項目の内容 |
選択項目 | ツリー項目 | ◎ | 選択しているツリー項目 |
選択表示 | 真偽 | ◎ | 他の部品が選択されているときもツリーの選択状態を表示するかどうか |
帯選択 | 真偽 | ◎ | ツリーを選択した際に帯状に表示するかどうか |
段落幅 | 整数 | ◎ | ツリーの階層の幅 |
展開ボタン | 真偽 | ◎ | 項目の横にある階層を展開するための+ボタンを表示するかどうか |
透明色 | 色 | ◎ | アイコンの透明となる色 |
同時表示可能数 | 整数 | □ | 一画面で表示できるツリーの数を取得します |
文字色 | 真偽 | ◎ | ツリーの項目の文字の色 |
並べ替え | 真偽 | ◎ | ツリーの項目を並べ替えるかどうか |
名前編集 | 真偽 | ◎ | 項目の見出しを変更できるようにするかどうか |
枠 | ◎ | ツリーの枠の形 |
イベント手順
部品から継承されるイベント手順のほか、次のイベント手順が使用できます。
イベント名 | 説明 | イベント情報 |
---|---|---|
チェックする | 項目のチェック状態が変化する直前。クリック操作および設定項目の設定によって発生します。 | あり |
チェックされた | 項目のチェック状態が変化された直後。クリック操作および設定項目の設定によって発生します。 | あり |
ドラッグされた | 項目をドラッグされた時 | |
折りたたみ前 | 項目を折りたたむ直前 | あり |
折りたたみ後 | 項目を折りたたんだ直後 | あり |
選択する | 項目が選択する直前 | あり |
選択された | 項目が選択された直後 | あり |
展開前 | 項目を展開する直前 | あり |
展開後 | 項目を展開された直後 | あり |
編集後 | 項目の見出しを編集した後 | あり |
編集前 | 項目の見出しを編集する前 | あり |
サンプルコード
項目を追加する
「ツリー項目」でノードの状態を変えられます。
【親のツリー項目】へ【項目名】を〈【アイコン】で〉追加する
ツリービューに項目を追加する例です。実行すると次のようなツリーにノードを作れます。アイコンは、任意ですので、サンプルフォルダにあるアイコンを使って試してみてください。
画像フォルダは「[プログラムのフォルダ]..\image\」 メイン画面を表示する 待機する メイン画面とは ウィンドウを受け継ぐ はじめの手順 この内容を「ツリービューのテスト」に変える ツリー1というツリーを作る その大きさを{200,200}に変える そのドッキング方向を全体に変える ツリー1へ「文章」を「[画像フォルダ]folder_close.ico」で追加してノードAとする ノードAへ「[画像フォルダ]folder_close.ico」で「9月」を追加する ノードAへ「[画像フォルダ]folder_close.ico」で「10月」を追加する ツリー1へ「写真」を「[画像フォルダ]folder_close.ico」で追加してノードBとする ノードBへ「[画像フォルダ]folder_close.ico」で「旅行」を追加する ノードBへ「[画像フォルダ]folder_close.ico」で「バーベキュー」を追加する ノードBへ「[画像フォルダ]folder_close.ico」で「海」を追加する 終わり ツリー1が折りたたみ後時の手順 イベントの対象のアイコンを「[画像フォルダ]folder_close.ico」に変える 終わり ツリー1が展開後時の手順 イベントの対象のアイコンを「[画像フォルダ]folder_open.ico」に変える 終わり 終わり
枝の展開と折りたたみ
枝を展開して子となる項目を出したときと、枝を折りたたんだときにも手順が実行されます。
開いたときと閉じたときで、アイコンの形を変えるときなどに使います。
ツリー1が折りたたみ後時の手順 イベントの対象のアイコンを「..\image\folder_close.ico」に変える 終わり ツリー1が展開後時の手順 イベントの対象のアイコンを「..\image\folder_open.ico」に変える 終わり
ツリー項目の名称を編集できるようにする
ツリーの項目名を変更できるようにすることもできます。
項目名(ラベル)を変更する直前に「編集前」イベント手順が実行され、直後に「編集後」イベント手順が実行されます。
変更後の項目名は「この時の内容」で取得できますので これらを使って正しい内容が指定されているか判断できます。
もし内容が正しくない場合は「この時のキャンセル」で○ を設定すると、編集中のラベルが変更されずに編集前に戻ります。
ツリー1の名前編集を○に変える ツリー1が編集後時の手順 //ラベルの編集の確認 この時の内容が「」なら 「空白にはできません」を警告アイコンで表示する この時のキャンセルは、○ そして 終わり
チェックが入れられるようする
ツリーの各項目にチェックを入れることもできます。
ツリー1のチェックボックスを○に変える
こうすることで各項目にチェックボックスが表示されます。
チェックされているかどうか調べる場合は、次のように書きます。
《ツリー名》の《項目名または番号》のチェック
項目名は、追加するときに指定した名前です。
また、選択している部分に関して調べるときは、次のようにすることもできます。
《ツリー名》のチェック
ツリー項目の文字の色などを変更する
指定した部分の項目名の色や背景を変更できます。
《ツリー名》の《項目名または番号》の色を青に変える
《ツリー名》の《項目名または番号》の太字をオンに変える
《ツリー名》の《項目名または番号》の背景を灰色に変える
項目名を「選択」とすると現在選択している項目に対して設定します。
ツリー項目をチェック可能にする
昔のラジオのボタンのように、チェックオブジェクトのようにすることもできます。
ツリー1の1番目のスタイルを1に変える ツリー1の1番目のチェックを○に変える
このようにすると、1番目のボタンがチェック状態になります。
ツリー項目についてパスなどを調べる
指定した項目の属する位置や親の項目名、子の項目の数などの情報を調べることもできます。
《ツリー名》の《項目名または番号》のパス
《ツリー名》の《項目名または番号》の親
《ツリー名》の《項目名または番号》の個数
エクスプローラ風フォルダーツリーを作る
「shell32.dll」の4番目からアイコン画像を抽出してフォルダアイコンとする メイン画面を表示する 待機する メイン画面とは ウィンドウを継承する はじめの手順 初期化する ーー貼り付けた部品に対する操作をここに書きます デスクトップからツリーを構築する 終わり 初期化する手順 この設計スケール比率を{144,144}に変える この内部領域大きさを{538,417}に変える この内容を「ファイルツリー」に変える ラベル1というラベルを作る その位置と大きさを{133,375,59,18}に変える その内容を「ラベル1」に変える その移動順を3に変える 選択ボタンというボタンを作る その位置と大きさを{12,364,115,41}に変える その内容を「選択」に変える その移動順を1に変える ツリー1というツリーを作る その位置と大きさを{12,12,514,346}に変える その項目高さを20に変える その移動順を2に変える その位置固定方向を「右+左+下+上」に変える 終わり [選択フォルダ]からツリーを構築する手順 ツリー1をクリアする 「[選択フォルダ]」が「\」で終わるなら、選択フォルダの末尾から1文字消して、選択フォルダとする ツリー1に選択フォルダをフォルダアイコンで追加してルートとする ルートに選択フォルダからツリーを構築する 終わり [選択フォルダ]から[対象ノード]にツリーを構築する手順 【フォルダ一覧】は、選択フォルダのフォルダの一覧 フォルダ一覧のすべてのフォルダ名についてそれぞれ繰り返す 対象ノードにフォルダ名をフォルダアイコンで追加して子ノードとする 子ノードに選択フォルダ&「\」&フォルダ名からツリーを構築する そして 終わり 選択ボタンがクリックされた時の手順 フォルダ選択画面を表示でなければ抜け出す フォルダ選択画面のフォルダ名からツリーを構築する 終わり ツリー1が選択された時の手順 ラベル1の内容は、ツリー1の選択項目のフルパス 終わり 終わり